// exports.AssetsUtils = void 0;
// (function (e) {
//     function t(e, t, n) {
//         return "{" + n + "}/[" + cc.js.getClassName(t) + "]/" + e;
//     }
//     e.huoqu_teding_ziyuan_lujing_xinxi = function (e) {
//         var n;
//         var o;
//         var i;
//         if (e.bundle) {
//             n = e.bundle;
//         }
//         if (e.type) {
//             o = e.type;
//         }
//         var r = e.url.split("/");
//         var a = r[0];
//         if (a.startsWith("{") && a.endsWith("}")) {
//             n = a.slice(1, -1);
//             r.shift();
//             var s = r[0];
//             if (s.startsWith("[") && s.endsWith("]")) {
//                 o = cc.js.getClassByName(s.slice(1, -1));
//                 r.shift();
//             }
//         } else {
//             if (a.startsWith("[") && a.endsWith("]")) {
//                 o = cc.js.getClassByName(a.slice(1, -1));
//                 r.shift();
//             }
//         }
//         i = r.join("/");
//         if (!n) {
//             n = cc.resources.name;
//         }
//         if (!o) {
//             o = cc.Asset;
//         }
//         return {
//             bundle: n,
//             type: o,
//             root: t(i, o, n),
//             url: i
//         };
//     };
//     e.getResRoot = t;
// })(exports.AssetsUtils || (exports.AssetsUtils = {}));


// exports.AssetsUtils = void 0;
// (function (exports) {
//     /**
//      * 构建资源路径信息。
//      * @param {string} fileName - 文件名称。
//      * @param {Function} assetType - 资源类型类（如 SpriteFrame，AnimationClip 等）。
//      * @param {string} bundleName - 资源包名称。
//      * @returns {string} 生成的资源路径。
//      */
//     function build_asset_path(fileName, assetType, bundleName) {
//         return "{" + bundleName + "}/[" + cc.js.getClassName(assetType) + "]/" + fileName;
//     }

//     /**
//      * 获取特定资源的路径信息。
//      * 
//      * @param {Object} resourceInfo - 包含资源路径和其他信息的对象。
//      * @param {string} resourceInfo.url - 资源的 URL。
//      * @param {string} [resourceInfo.bundle] - 资源所属的资源包，可选。
//      * @param {Function} [resourceInfo.type] - 资源类型类（如 SpriteFrame，AnimationClip 等），可选。
//      * @returns {Object} 返回包含 bundle, type, root, url 信息的对象。
//      */
//     exports.huoqu_teding_ziyuan_lujing_xinxi = function (resourceInfo) {
//         let bundleName;
//         let assetType;
//         let resourceUrl;

//         // 获取 bundle
//         if (resourceInfo.bundle) {
//             bundleName = resourceInfo.bundle;
//         }

//         // 获取 type
//         if (resourceInfo.type) {
//             assetType = resourceInfo.type;
//         }

//         // 拆分 URL
//         const urlSegments = resourceInfo.url.split("/");
//         const firstSegment = urlSegments[0];

//         // 提取 bundle 和 type 信息
//         if (firstSegment.startsWith("{") && firstSegment.endsWith("}")) {
//             bundleName = firstSegment.slice(1, -1);
//             urlSegments.shift();
//             const nextSegment = urlSegments[0];
//             if (nextSegment.startsWith("[") && nextSegment.endsWith("]")) {
//                 assetType = cc.js.getClassByName(nextSegment.slice(1, -1));
//                 urlSegments.shift();
//             }
//         } else {
//             if (firstSegment.startsWith("[") && firstSegment.endsWith("]")) {
//                 assetType = cc.js.getClassByName(firstSegment.slice(1, -1));
//                 urlSegments.shift();
//             }
//         }

//         resourceUrl = urlSegments.join("/");

//         // 默认的 bundle 和 type 处理
//         if (!bundleName) {
//             bundleName = cc.resources.name;
//         }
//         if (!assetType) {
//             assetType = cc.Asset;
//         }

//         return {
//             bundle: bundleName,
//             type: assetType,
//             root: build_asset_path(resourceUrl, assetType, bundleName),
//             url: resourceUrl
//         };
//     };
    
//     // 暴露获取资源根路径的方法
//     exports.getResRoot = build_asset_path;
// })(exports.AssetsUtils || (exports.AssetsUtils = {}));



// 定义 AssetsUtils 模块
exports.AssetsUtils = {};

/**
 * 构建资源路径信息。
 * @param {string} fileName - 文件名称。
 * @param {Function} assetType - 资源类型类（如 SpriteFrame，AnimationClip 等）。
 * @param {string} bundleName - 资源包名称。
 * @returns {string} 生成的资源路径。
 */
function build_asset_path(fileName, assetType, bundleName) {
    return `{${bundleName}}/[${cc.js.getClassName(assetType)}]/${fileName}`;
}

/**
 * 获取特定资源的路径信息。
 * 
 * @param {Object} resourceInfo - 包含资源路径和其他信息的对象。
 * @param {string} resourceInfo.url - 资源的 URL。
 * @param {string} [resourceInfo.bundle] - 资源所属的资源包，可选。
 * @param {Function} [resourceInfo.type] - 资源类型类（如 SpriteFrame，AnimationClip 等），可选。
 * @returns {Object} 返回包含 bundle, type, root, url 信息的对象。
 */
exports.AssetsUtils.huoqu_teding_ziyuan_lujing_xinxi = function (resourceInfo) {
    let bundleName = resourceInfo.bundle || null;
    let assetType = resourceInfo.type || null;
    let resourceUrl;

    // 拆分 URL 并解析 bundle 和 type 信息
    const urlSegments = resourceInfo.url.split("/");
    const firstSegment = urlSegments[0];

    if (firstSegment.startsWith("{") && firstSegment.endsWith("}")) {
        // 提取 bundle 信息
        bundleName = firstSegment.slice(1, -1);
        urlSegments.shift();

        const nextSegment = urlSegments[0];
        if (nextSegment && nextSegment.startsWith("[") && nextSegment.endsWith("]")) {
            // 提取 type 信息
            assetType = cc.js.getClassByName(nextSegment.slice(1, -1));
            urlSegments.shift();
        }
    } else if (firstSegment.startsWith("[") && firstSegment.endsWith("]")) {
        // 如果没有 bundle，直接提取 type 信息
        assetType = cc.js.getClassByName(firstSegment.slice(1, -1));
        urlSegments.shift();
    }

    // 处理剩余的 URL
    resourceUrl = urlSegments.join("/");

    // 默认的 bundle 和 type 处理
    if (!bundleName) {
        bundleName = cc.resources.name; // 默认资源包
    }
    if (!assetType) {
        assetType = cc.Asset; // 默认资源类型
    }

    return {
        bundle: bundleName,
        type: assetType,
        root: build_asset_path(resourceUrl, assetType, bundleName),
        url: resourceUrl,
    };
};

/**
 * 暴露生成资源根路径的方法
 * @param {string} fileName - 文件名称。
 * @param {Function} assetType - 资源类型类（如 SpriteFrame，AnimationClip 等）。
 * @param {string} bundleName - 资源包名称。
 * @returns {string} 生成的资源路径。
 */
exports.AssetsUtils.getResRoot = build_asset_path;
